package org.railage.server.dao;

import java.util.List;

import org.railage.server.entities.TripThroughTwoStations;

/**
 * DAO for TripThroughTwoStations entity.
 * 
 * @author Cyril Fertikov
 * 
 */
public interface TripThroughTwoStationsDAO {

	/**
	 * Gets trips passing 2 given stations.
	 * 
	 * @param stationA
	 *            First station.
	 * @param stationB
	 *            Second station.
	 * @return List of stations.
	 */
	List<TripThroughTwoStations> getTripsThroughTwoStations(String stationA,
			String stationB);

	/**
	 * Gets trips passing 2 given stations less than or equal to given duration.
	 * 
	 * @param stationA
	 *            First station.
	 * @param stationB
	 *            Second station.
	 * @param duration
	 *            Duration.
	 * @return List of stations.
	 */
	List<TripThroughTwoStations> getTripsThroughTwoStations(String stationA,
			String stationB, String duration);

	/**
	 * Gets trips passing 2 given stations in given period of time.
	 * 
	 * @param stationA
	 *            First station.
	 * @param stationB
	 *            Second station.
	 * @param departure
	 *            Departure time from first station.
	 * @param arrival
	 *            Arrival time to second station.
	 * @return List of stations.
	 */
	List<TripThroughTwoStations> getTripsThroughTwoStations(String stationA,
			String stationB, String departure, String arrival);
}
